import Vue from "vue";
import App from "./App.vue";
// 引入路由
import router from "@/router";
import { Button, MessageBox } from "element-ui";

// 三级联动组件---全局组件
import TypeNav from "@/components/TypeNav";
// 轮播图---全局组件
import Carousel from "@/components/Carousel";
// 分页---全局组件
import Pagination from "@/components/Pagination";
/** Vue.component()
 * 第一个参数：全局组件名字
 * 第二个参数：哪一个组件
 */
Vue.component(TypeNav.name, TypeNav);
Vue.component(Carousel.name, Carousel);
Vue.component(Pagination.name, Pagination);
// 全局注册的elementUI
Vue.component(Button.name, Button);
// 挂在原型上注册elementUI
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;

// 引入仓库
import store from "@/store";
// 引入MockServer.js---mock数据
import "@/mock/mockServe";
// 引入包swiper样式
import "swiper/css/swiper.css";

// 统一接口api文件夹里面全部请求函数，统一引入
import * as API from "@/api";

// 引入图片懒加载插件
import VueLazyload from "vue-lazyload";
// 引入图片
import pic from "@/assets/logo.png";
// 注册插件
Vue.use(VueLazyload, {
  // 懒加载默认图片
  loading: pic,
});

// 测试search中的数据
// import {reqGetSearchInfo} from '@/api'
// console.log(reqGetSearchInfo({}));

// 引入自定义插件
import myPlugins from '@/plugins/myPlugins'
Vue.use(myPlugins,{
  name:'upper'
})

Vue.config.productionTip = false;
new Vue({
  render: (h) => h(App),
  beforeCreate() {
    // 配置全局事件总线 $bus
    Vue.prototype.$bus = this;
    //
    Vue.prototype.$API = API;
  },
  // 注册路由:组件实例的身上会多了一个属性 $route
  router,
  // 注册仓库:组件实例的身上会多了一个属性 $store
  store,
}).$mount("#app");
